<html>
<head>
<title>POJava</title>
<LINK REL="stylesheet" HREF="/style/pojava.css" TYPE="text/css" MEDIA="screen" />
<body>
<img src="img/pojava7.png">
<h3>What is POJava?</h3>
<p>POJava is a very light-weight utility library providing a practical assortment of data transformations.
Its goal is to provide a foundation for POJO-based handling of data with no dependencies and no alterations
required of the POJO itself.  The base jar, POJava, provides common functions for string and binary conversions,
such as compression, encryption, and encoding, and other tools for accessing, validating, and altering data
such as date manipulation, reflection, external process invocation, and language binding.</p>
<p>A key strength of the base POJava library is its handling of dates and times.  Its immutable DateTime object parses dates
from text in multiple languages and formats down to nanosecond precision.  It can perform date math, such as truncating
to a whole time period, or adding a period to a date, or performing multiple in-line operations.  It's really easy to use.</p>
<p>The POJava Persistence jar layers additional support for database-to-object (ORM) and object-to-xml
exchanges in both directions.  It depends only on POJava, so it also has a very small footprint.
</p>
<h2>What's new and cool in POJava?</h2>
<p>As of version 2.7.0, POJava's DateTime class switched switched from relying on
the TimeZone.getDefault() static to determine a time zone, to using a combination
of InputTimeZone and OutputTimeZone stored in an IDateTimeConfig, and allowing
a custom IDateTimeConfig to be specified.  The DateTimeConfig class was updated to
support this as well, providing a singleton version of itself as a global default,
and a quick means of creating and customizing clones.  The end result is that 
DateTime can be more easily used for sites offering independent services using 
multiple time zones for multiple customers.</p>
<h2>Generated Documentation</h2>
<table>
<tr>
<td><a href="/site/pojava-2.7.0/">POJava 2.7.0</a> <a href="/site/pojava-2.7.0/apidocs/">JavaDocs</a></td>
<td>POJava provides utilities for managing data using simple POJOs (Plain Old Java Objects).</td>
</tr>
<tr>
<td><a href="/site/pojava-persistence-2.6.0/">Persistence 2.6.0</a> <a href="/site/pojava-persistence-2.6.0/apidocs/">JavaDocs</a></td>
<td>POJava Persistence provides a persistence layer for Object Relational Mapping between Java
and a wide array of database platforms.  It also provides Object to XML serialization and
deserialization to simplify the conversion of your objects into a portable form.</td>
</tr>
</table>
<h2>Hand-written Documentation</h2>
<h3>How to use POJava for...</h3>
<table>
<tr>
  <td><a href="/howto/compression.html">Compression</a></td>
  <td>Using Zip compression to fit more into the same space.</td>
</tr><tr>
  <td><a href="/howto/datetime.html">Date and Time</a>
  <td>Easily parse freeform text Date and Time in multiple languages and formats.</td>
</tr><tr>
  <td><a href="/howto/encoding.html">Number Base Encoding</a>
  <td>Base-64 or Hex-encode your binary data for document portability.</td>
</tr><tr>
  <td><a href="/howto/jndiregistry.html">Unit testing with JNDI</a>
  <td>Use JNDIRegistry to populate a test-friendly InitialContext.</td>
</tr><tr>
  <td><a href="/howto/process.html">Running External Programs</a>
  <td>Use the ProcessTool to reliably execute external programs, capturing both stdout and stderr.</td>
</tr><tr>
  <td><a href="/howto/encryption.html">Encryption</a>
  <td>Encrypt and decrypt your data using government-approved AES-128 encryption (and other
supported encryption methods).</td>
</tr>
</table>
<table>
<h3>How to use POJava Persistence for...</h3>
<tr>
  <td><a href="/howto/xmlserializer.html">XML Serialization</a>
  <td>Stream your Objects to XML.  Retrieve and rehydrate them back into Objects, preserving
complex circular references.</td>
</tr><tr>
  <td><a href="/howto/dao.html">Object Relational Mapping</a>
  <td>Make your Data Access Objects simple, secure and speedy.</td>
</tr>
</table>
</body>
</html>
